╬πδαΓδσφΦσ

╤σ≥σΓ√σ ∩≡ΦδεµσφΦ 
└Σ≡σ± IP
└Σ≡σ± URL
╩δα±± URL
╤εΩσ≥√
╧ε≥εΩεΓ√σ ±εΩσ≥√
╩δα±± Socket
─α≥απ≡α∞∞φ√σ ±εΩσ≥√
╤Γ τⁿ ± Web
└∩δσ≥ ShowChart
╧≡ΦδεµσφΦ  SocketServ Φ SocketClient
└∩δσ≥ Form

    ╧≡ΦδεµσφΦ  SocketServ Φ SocketClient

    ┬ Ωα≈σ±≥Γσ ∩≡Φ∞σ≡α ∞√ ∩≡ΦΓσΣσ∞ Φ±⌡εΣφ√σ ≥σΩ±≥√ ΣΓ≤⌡ ∩≡ΦδεµσφΦΘ Java, ≡αßε≥α■∙Φ⌡ ± ∩ε≥εΩεΓ√∞Φ ±εΩσ≥α∞Φ. ╬Σφε Φτ ²≥Φ⌡ ∩≡ΦδεµσφΦΘ φατ√Γασ≥±  SocketServ Φ Γ√∩εδφ σ≥ ≡εδⁿ ±σ≡Γσ≡α, Γ≥ε≡εσ φατ√Γασ≥±  SocketClient Φ ±δ≤µΦ≥ ΩδΦσφ≥ε∞.

    ╧≡ΦδεµσφΦσ SocketServ Γ√ΓεΣΦ≥ φα Ωεφ±εδⁿ ±≥≡εΩ≤ "Socket Server Application" Φ τα≥σ∞ ∩σ≡σ⌡εΣΦ≥ Γ ±ε±≥ε φΦσ εµΦΣαφΦ  ±εσΣΦφσφΦ  ± ΩδΦσφ≥±ΩΦ∞ ∩≡ΦδεµσφΦσ∞ SocketClient.

    ╧≡ΦδεµσφΦσ SocketClient ≤±≥αφαΓδΦΓασ≥ ±εσΣΦφσφΦσ ± ±σ≡Γσ≡ε∞ SocketServ, Φ±∩εδⁿτ≤  ∩ε≥εΩεΓ√Θ ±εΩσ≥ ± φε∞σ≡ε∞ 9999 (²≥ε≥ φε∞σ≡ Γ√ß≡αφ φα∞Φ ∩≡εΦτΓεδⁿφε). ─αδσσ ΩδΦσφ≥±Ωεσ ∩≡ΦδεµσφΦσ Γ√ΓεΣΦ≥ φα ±Γε■ Ωεφ±εδⁿ ∩≡Φπδα°σφΦσ Σδ  ΓΓεΣα ±≥≡εΩ. ┬ΓσΣσφφ√σ ±≥≡εΩΦ ε≥εß≡αµα■≥±  φα Ωεφ±εδΦ Φ ∩σ≡σΣα■≥±  ±σ≡Γσ≡φε∞≤ ∩≡ΦδεµσφΦ■. ╤σ≡Γσ≡, ∩εδ≤≈ΦΓ ±≥≡εΩ≤, ε≥εß≡αµασ≥ σσ Γ ±Γεσ∞ εΩφσ Φ ∩ε±√δασ≥ εß≡α≥φε ΩδΦσφ≥≤. ╩δΦσφ≥ Γ√ΓεΣΦ≥ ∩εδ≤≈σφφ≤■ ε≥ ±σ≡Γσ≡α ±≥≡εΩ≤ φα Ωεφ±εδΦ.

    ╩επΣα ∩εδⁿτεΓα≥σδⁿ ΓΓεΣΦ≥ ±≥≡εΩ≤ "quit", ÷ΦΩδ ΓΓεΣα Φ ∩σ≡σΣα≈Φ ±≥≡εΩ ταΓσ≡°ασ≥± .

    ┬σ±ⁿ ∩≡ε÷σ±± ∩εΩαταφ φα ≡Φ±. 3 Φ 4.

    pic03.gif (4444 bytes)

    ╨Φ±. 3. ╬Ωφε ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ 

    pic04.gif (3495 bytes)

    ╨Φ±. 4. ╬Ωφε ±σ≡Γσ≡φεπε ∩≡ΦδεµσφΦ 

    ╟Σσ±ⁿ Γ εΩφσ ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ  ∞√ ΓΓσδΦ φσ±ΩεδⁿΩε ±≥≡εΩ, ∩≡Φ≈σ∞ ∩ε±δσΣφ   ±≥≡εΩα ß√δα ±≥≡εΩεΘ "quit", ταΓσ≡°ΦΓ°α  ≡αßε≥≤ ∩≡ΦδεµσφΦΘ.

    ╚±⌡εΣφ√Θ ≥σΩ±≥ ±σ≡Γσ≡φεπε ∩≡ΦδεµσφΦ  SocketServ

    ╚±⌡εΣφ√Θ ≥σΩ±≥ ±σ≡Γσ≡φεπε ∩≡ΦδεµσφΦ  SocketServ ∩≡ΦΓσΣσφ Γ δΦ±≥Φφπσ 3.

    ╦Φ±≥Φφπ 3. ╘αΘδ SocketServ.java

    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class SocketServ
    {
      public static void main(String args[])
      {
        byte bKbdInput[] = new byte[256];
        ServerSocket ss;
        Socket s;
        InputStream is;
        OutputStream os;
        try
        {
          System.out.println(
            "Socket Server Application");
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }   
        try
        {
          ss = new ServerSocket(9999);
          s = ss.accept();
          is = s.getInputStream();
          os = s.getOutputStream();
          byte buf[] = new byte[512];
          int lenght;
          while(true)
          {
            lenght = is.read(buf);
            if(lenght == -1)
              break;
            String str = new String(buf, 0);
            StringTokenizer st;
            st   = new StringTokenizer(
               str, "\r\n");
            str = new String(
              (String)st.nextElement());
            System.out.println(">  " + str);
            os.write(buf, 0, lenght);
            os.flush();
          }
          is.close();
          os.close();
          s.close();
          ss.close();
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }    
        try
        {
          System.out.println(
            "Press <Enter> to terminate
     application...");
          System.in.read(bKbdInput);
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }
      }
    }

    ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α ±σ≡Γσ≡φεπε ∩≡ΦδεµσφΦ  SocketServ

    ┬ ∞σ≥εΣσ main, ∩εδ≤≈α■∙σ∞ ≤∩≡αΓδσφΦσ ±≡ατ≤ ∩ε±δσ τα∩≤±Ωα ∩≡ΦδεµσφΦ , ∞√ ε∩≡σΣσδΦδΦ φσ±ΩεδⁿΩε ∩σ≡σ∞σφφ√⌡.

    ╠α±±ΦΓ bKbdInput ≡ατ∞σ≡ε∞ 256 ßαΘ≥ ∩≡σΣφατφα≈σφ Σδ  ⌡≡αφσφΦ  ±≥≡εΩ, ΓΓσΣσφφ√⌡ ∩≡Φ ∩ε∞ε∙Φ ΩδαΓΦα≥≤≡√.

    ┬ ∩σ≡σ∞σφφ≤■ ss Ωδα±±α ServerSocket ß≤Σσ≥ τα∩Φ±αφα ±±√δΩα φα εß·σΩ≥, ∩≡σΣφατφα≈σφφ√Θ Σδ  ≤±≥αφεΓδσφΦ  Ωαφαδα ±Γ τΦ ≈σ≡στ ∩ε≥εΩεΓ√Θ ±εΩσ≥ (φε φσ ±±√δΩα φα ±α∞ ±εΩσ≥):

    ServerSocket ss;

    ╤±√δΩα φα ±εΩσ≥, ± Φ±∩εδⁿτεΓαφΦσ∞ Ωε≥ε≡επε ß≤Σσ≥ ∩≡εΦ±⌡εΣΦ≥ⁿ ∩σ≡σΣα≈α Σαφφ√⌡, ⌡≡αφΦ≥±  Γ ∩σ≡σ∞σφφεΘ ± Φ∞σφσ∞ s Ωδα±±α Socket:

    Socket s;

    ╩≡ε∞σ ≥επε, ∞√ ε∩≡σΣσδΦδΦ ∩σ≡σ∞σφφ√σ is Φ os, ±εε≥Γσ≥±≥Γσφφε, Ωδα±±εΓ InputStream Φ OutputStream:

    InputStream is; 
    OutputStream os;

    ┬ ²≥Φ ∩σ≡σ∞σφφ√σ ß≤Σ≤≥ τα∩Φ±αφ√ ±±√δΩΦ φα Γ⌡εΣφεΘ Φ Γ√⌡εΣφεΘ ∩ε≥εΩ Σαφφ√⌡, Ωε≥ε≡√σ ±Γ ταφ√ ± ±εΩσ≥ε∞.

    ╧ε±δσ ε≥εß≡αµσφΦ  φα Ωεφ±εδΦ ±≥≡εΩΦ φατΓαφΦ  ∩≡ΦδεµσφΦ , ∞σ≥εΣ main ±ετΣασ≥ εß·σΩ≥ Ωδα±±α ServerSocket, ≤Ωατ√Γα  Ωεφ±≥≡≤Ω≥ε≡≤ φε∞σ≡ ∩ε≡≥α 9999:

    ss = new ServerSocket(9999);

    ╩εφ±≥≡≤Ω≥ε≡ ΓετΓ≡α∙ασ≥ ±±√δΩ≤ φα εß·σΩ≥, ± Φ±∩εδⁿτεΓαφΦσ∞ Ωε≥ε≡επε ∞εµφε ≤±≥αφεΓΦ≥ⁿ Ωαφαδ ∩σ≡σΣα≈Φ Σαφφ√⌡ ± ΩδΦσφ≥ε∞.

    ╩αφαδ ≤±≥αφαΓδΦΓασ≥±  ∞σ≥εΣε∞ accept:

    s = ss.accept();

    ▌≥ε≥ ∞σ≥εΣ ∩σ≡σΓεΣΦ≥ ∩≡ΦδεµσφΦσ Γ ±ε±≥ε φΦσ εµΦΣαφΦ  Σε ≥σ⌡ ∩ε≡, ∩εΩα φσ ß≤Σσ≥ ≤±≥αφεΓδσφ Ωαφαδ ∩σ≡σΣα≈Φ Σαφφ√⌡.

    ╠σ≥εΣ accept Γ ±δ≤≈ασ ≤±∩σ°φεπε ±ετΣαφΦ  Ωαφαδα ∩σ≡σΣα≈Φ Σαφφ√⌡ ΓετΓ≡α∙ασ≥ ±±√δΩ≤ φα ±εΩσ≥, ± ∩≡Φ∞σφσφΦσ∞ Ωε≥ε≡επε φ≤µφε ∩≡ΦφΦ∞α≥ⁿ Φ ∩σ≡σΣαΓα≥ⁿ Σαφφ√σ.

    ═α ±δσΣ≤■∙σ∞ ²≥α∩σ ±σ≡Γσ≡ ±ετΣασ≥ Γ⌡εΣφεΘ Φ Γ√⌡εΣφεΘ ∩ε≥εΩΦ, Γ√τ√Γα  Σδ  ²≥επε ∞σ≥εΣ√ getInputStream Φ getOutputStream, ±εε≥Γσ≥±≥Γσφφε:

    is = s.getInputStream();
    os = s.getOutputStream();

    ─αδσσ ∩≡ΦδεµσφΦσ ∩εΣπε≥αΓδΦΓασ≥ ß≤⌠σ≡ buf Σδ  ∩≡Φσ∞α Σαφφ√⌡ Φ ε∩≡σΣσδ σ≥ ∩σ≡σ∞σφφ≤■ length, Γ Ωε≥ε≡≤■ ß≤Σσ≥ τα∩Φ±√Γα≥ⁿ±  ≡ατ∞σ≡ ∩≡Φφ ≥επε ßδεΩα Σαφφ√⌡:

    byte buf[] = new byte[512];
    int lenght;

    ╥σ∩σ≡ⁿ Γ±σ πε≥εΓε Σδ  τα∩≤±Ωα ÷ΦΩδα ∩≡Φσ∞α Φ εß≡αßε≥ΩΦ ±≥≡εΩ ε≥ ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ .

    ─δ  ≈≥σφΦ  ±≥≡εΩΦ ∞√ Γ√τ√Γασ∞ ∞σ≥εΣ read ∩≡Φ∞σφΦ≥σδⁿφε Ωε Γ⌡εΣφε∞≤ ∩ε≥εΩ≤:

    lenght = is.read(buf);

    ▌≥ε≥ ∞σ≥εΣ ΓετΓ≡α∙ασ≥ ≤∩≡αΓδσφΦσ ≥εδⁿΩε ∩ε±δσ ≥επε, ΩαΩ Γ±σ Σαφφ√σ ß≤Σ≤≥ ∩≡ε≈Φ≥αφ√, ßδεΩΦ≡≤  ∩≡ΦδεµσφΦσ φα Γ≡σ∞  ±ΓεσΘ ≡αßε≥√. ┼±δΦ ≥αΩα  ßδεΩΦ≡εΓΩα φσµσδα≥σδⁿφα, Γα∞ ±δσΣ≤σ≥ Γ√∩εδφ ≥ⁿ εß∞σφ Σαφφ√∞Φ ≈σ≡στ ±εΩσ≥ Γ ε≥ΣσδⁿφεΘ ταΣα≈σ.

    ╠σ≥εΣ read ΓετΓ≡α∙ασ≥ ≡ατ∞σ≡ ∩≡Φφ ≥επε ßδεΩα Σαφφ√⌡ ΦδΦ -1, σ±δΦ ∩ε≥εΩ Φ±≈σ≡∩αφ. ╠√ Γε±∩εδⁿτεΓαδΦ±ⁿ ²≥Φ∞ εß±≥ε ≥σδⁿ±≥Γε∞ Σδ  ταΓσ≡°σφΦ  ÷ΦΩδα ∩≡Φσ∞α Σαφφ√⌡:

    if(lenght == -1)
      break;

    ╧ε±δσ ταΓσ≡°σφΦ  ∩≡Φσ∞α ßδεΩα Σαφφ√⌡ ∞√ ∩≡σεß≡ατ≤σ∞ ∞α±±ΦΓ Γ ≥σΩ±≥εΓ≤■ ±≥≡εΩ≤ str Ωδα±±α String, ≤Σαδ   Φτ φσσ ±Φ∞Γεδ ∩σ≡σΓεΣα ±≥≡εΩΦ, Φ ε≥εß≡αµασ∞ ≡στ≤δⁿ≥α≥ φα Ωεφ±εδΦ ±σ≡Γσ≡α:

    System.out.println(">  " + str);

    ╟α≥σ∞ ∩εδ≤≈σφφα  ±≥≡εΩα ε≥∩≡αΓδ σ≥±  εß≡α≥φε ΩδΦσφ≥±Ωε∞≤ ∩≡ΦδεµσφΦ■, Σδ  ≈σπε Γ√τ√Γασ≥±  ∞σ≥εΣ write:

    os.write(buf, 0, lenght);

    ╠σ≥εΣ≤ write ∩σ≡σΣασ≥±  ±±√δΩα φα ∞α±±ΦΓ, ±∞σ∙σφΦσ φα≈αδα Σαφφ√⌡ Γ ²≥ε∞ ∞α±±ΦΓσ, ≡αΓφεσ φ≤δ■, Φ ≡ατ∞σ≡ ∩≡Φφ ≥επε ßδεΩα Σαφφ√⌡.

    ─δ  Φ±Ωδ■≈σφΦ  ταΣσ≡µσΩ Γ ∩σ≡σΣα≈σ Σαφφ√⌡ Φτ-τα φαΩε∩δσφΦ  Σαφφ√⌡ Γ ß≤⌠σ≡σ (∩≡Φ Φ±∩εδⁿτεΓαφΦΦ ß≤⌠σ≡ΦτεΓαφφ√⌡ ∩ε≥εΩεΓ) φσεß⌡εΣΦ∞ε ∩≡Φφ≤ΣΦ≥σδⁿφε ±ß≡α±√Γα≥ⁿ ±εΣσ≡µΦ∞εσ ß≤⌠≡σα ∞σ≥Σε∞ flush:

    os.flush();

    ╚ ⌡ε≥  Γ φα°σ∞ ±δ≤≈ασ ∞√ φσ ∩εδⁿτ≤σ∞±  ß≤⌠σ≡ΦτεΓαφφ√∞Φ ∩ε≥εΩα∞Φ, ∞√ ΓΩδ■≈ΦδΦ Γ√τεΓ ²≥επε ∞σ≥εΣα Σδ  ∩≡Φ∞σ≡α.

    ╥σ∩σ≡ⁿ ε ταΓσ≡°α■∙Φ⌡ ΣσΘ±≥ΓΦ ⌡ ∩ε±δσ ∩≡σ≡√ΓαφΦ  ÷ΦΩδα ∩εδ≤≈σφΦ , ε≥εß≡αµσφΦ  Φ ∩σ≡σΣα≈Φ ±≥≡εΩ.

    ═α°σ ∩≡ΦδεµσφΦσ  Γφ ∞ εß≡ατε∞ ταΩ≡√Γασ≥ Γ⌡εΣφεΘ Φ Γ√⌡εΣφεΘ ∩ε≥εΩΦ Σαφφ√⌡, ±εΩσ≥, α ≥αΩµσ εß·σΩ≥ Ωδα±±α ServerSocket, ± Φ±∩εδⁿτεΓαφΦσ∞ Ωε≥ε≡επε ß√δ ±ετΣαφ Ωαφαδ ∩σ≡σΣα≈Φ Σαφφ√⌡:

    is.close();
    os.close();
    s.close();
    ss.close();

    ╚±⌡εΣφ√Θ ≥σΩ±≥ ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ  SocketClient

    ╚±⌡εΣφ√Θ ≥σΩ±≥ ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ  SocketClient ∩≡ΦΓσΣσφ Γ δΦ±≥Φφπσ 4.

    ╦Φ±≥Φφπ 4. ╘αΘδ SocketClient.java

    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class SocketClient
    {
      public static void main(String args[])
      {
        byte bKbdInput[] = new byte[256];
        Socket s;
        InputStream is;
        OutputStream os;
        try
        {
          System.out.println(
            "Socket Client Application" +
            "\nEnter any string or" +
            " 'quit' to exit...");
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }
        try
        {
          s = new Socket("localhost",9999);
          is = s.getInputStream();
          os = s.getOutputStream();
          byte buf[] = new byte[512];
          int length;
          String str;
          while(true)
          {
            length = System.in.read(bKbdInput);
            if(length != 1)
            {
              str = new String(bKbdInput, 0);
              StringTokenizer st;
              st   = new StringTokenizer(
                str, "\r\n");
              str = new String(
                (String)st.nextElement());
              System.out.println(">  " + str);
              os.write(bKbdInput, 0, length);
              os.flush();
              length = is.read(buf);
              if(length == -1)
                break;
              str = new String(buf, 0);
              st   = new StringTokenizer(
                str, "\r\n");
              str = new String(
                  (String)st.nextElement());
              System.out.println(">> " + str);
              if(str.equals("quit"))
                break;
            }
          }
          is.close();
          os.close();
          s.close();
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }    
        try
        {
          System.out.println(
            "Press <Enter> to " +
             "terminate application...");
          System.in.read(bKbdInput);
        }
        catch(Exception ioe)
        {
          System.out.println(ioe.toString());
        }
      }
    }

    ╬∩Φ±αφΦσ Φ±⌡εΣφεπε ≥σΩ±≥α ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ  SocketClient

    ┬φ≤≥≡Φ ∞σ≥εΣα main ΩδΦσφ≥±Ωεπε ∩≡ΦδεµσφΦ  SocketClient ε∩≡σΣσδσφ√ ∩σ≡σ∞σφφ√σ Σδ  ΓΓεΣα ±≥≡εΩΦ ± ΩδαΓΦα≥≤≡√ (∞α±±ΦΓ bKbdInput), ±εΩσ≥ s Ωδα±±α Socket Σδ  ≡αßε≥√ ± ±σ≡Γσ≡ε∞ SocketServ, Γ⌡εΣφεΘ ∩ε≥εΩ is Φ Γ√⌡εΣφεΘ ∩ε≥εΩ os, Ωε≥ε≡√σ ±Γ ταφ√ ± ±εΩσ≥ε∞ s.

    ╧ε±δσ Γ√ΓεΣα φα Ωεφ±εδⁿ ∩≡Φπδα°α■∙σΘ ±≥≡εΩΦ ΩδΦσφ≥±Ωεσ ∩≡ΦδεµσφΦσ ±ετΣασ≥ ±εΩσ≥, Γ√τ√Γα  Ωεφ±≥≡≤Ω≥ε≡ Ωδα±±α Socket:

    s = new Socket("localhost",9999);

    ┬ ∩≡ε÷σ±±σ ε≥δαΣΩΦ ∞√ τα∩≤±ΩαδΦ ±σ≡Γσ≡ Φ ΩδΦσφ≥ φα εΣφε∞ Φ ≥ε∞ µσ ≤τδσ, ∩ε²≥ε∞≤ Γ Ωα≈σ±≥Γσ αΣ≡σ±α ±σ≡Γσ≡α ≤Ωαταφα ±≥≡εΩα "localhost". ═ε∞σ≡ ∩ε≡≥α ±σ≡Γσ≡α SocketServ ≡αΓσφ 9999, ∩ε²≥ε∞≤ ∞√ Φ ∩σ≡σΣαδΦ Ωεφ±≥≡≤Ω≥ε≡≤ ²≥ε τφα≈σφΦσ.

    ╧ε±δσ ±ετΣαφΦ  ±εΩσ≥α φα°σ ΩδΦσφ≥±Ωεσ ∩≡ΦδεµσφΦσ ±ετΣασ≥ Γ⌡εΣφεΘ Φ Γ√⌡εΣφεΘ ∩ε≥εΩΦ, ±Γ ταφφ√σ ± ²≥Φ∞ ±εΩσ≥ε∞:

    is = s.getInputStream();
    os = s.getOutputStream();

    ╥σ∩σ≡ⁿ ΩδΦσφ≥±Ωεσ ∩≡ΦδεµσφΦσ πε≥εΓε εß∞σφΦΓα≥ⁿ±  Σαφφ√∞Φ ± ±σ≡Γσ≡ε∞.

    ▌≥ε≥ εß∞σφ Γ√∩εδφ σ≥±  Γ ÷ΦΩδσ, ≤±δεΓΦσ∞ ταΓσ≡°σφΦ  Ωε≥ε≡επε  Γδ σ≥±  ΓΓεΣ ∩εδⁿτεΓα≥σδσ∞ ±≥≡εΩΦ "quit".

    ┬φ≤≥≡Φ ÷ΦΩδα ∩≡ΦδεµσφΦσ ≈Φ≥ασ≥ ±≥≡εΩ≤ ± ΩδαΓΦα≥≤≡√, τα∩Φ±√Γα  σσ Γ ∞α±±ΦΓ bKbdInput:

    length = System.in.read(bKbdInput);

    ╩εδΦ≈σ±≥Γε ΓΓσΣσφφ√⌡ ±Φ∞ΓεδεΓ ±ε⌡≡αφ σ≥±  Γ ∩σ≡σ∞σφφεΘ length.

    ─αδσσ σ±δΦ ∩εδⁿτεΓα≥σδⁿ ΓΓσδ ±≥≡εΩ≤, α φσ ∩≡ε±≥ε φαµαδ φα ΩδαΓΦ°≤ <Enter>, ²≥α ±≥≡εΩα ε≥εß≡αµασ≥±  φα Ωεφ±εδΦ Φ ∩σ≡σΣασ≥±  ±σ≡Γσ≡≤:

    os.write(bKbdInput, 0, length);
    os.flush();

    ╤≡ατ≤ ∩ε±δσ ∩σ≡σΣα≈Φ ±ß≡α±√Γασ≥±  ß≤⌠σ≡ Γ√⌡εΣφεπε ∩ε≥εΩα.

    ─αδσσ ∩≡ΦδεµσφΦσ ≈Φ≥ασ≥ ε≥Γσ≥, ∩ε±√δασ∞√Θ ±σ≡Γσ≡ε∞, Γ ß≤⌠σ≡ buf:

    length = is.read(buf);

    ═α∩ε∞φΦ∞, ≈≥ε φα° ±σ≡Γσ≡ ∩ε±√δασ≥ ΩδΦσφ≥≤ ∩≡Φφ ≥≤■ ±≥≡εΩ≤ Γ φσΦτ∞σφφε∞ ΓΦΣσ.

    ┼±δΦ ±σ≡Γσ≡ ταΩ≡√δ Ωαφαδ, ≥ε ∞σ≥εΣ read ΓετΓ≡α∙ασ≥ τφα≈σφΦσ -1. ┬ ²≥ε∞ ±δ≤≈ασ ∞√ ∩≡σ≡√Γασ∞ ÷ΦΩδ ΓΓεΣα Φ ∩σ≡σΣα≈Φ ±≥≡εΩ:

    if(length == -1)
      break;

    ┼±δΦ µσ ε≥Γσ≥ ±σ≡Γσ≡α ∩≡Φφ ≥ ≤±∩σ°φε, ∩≡Φφ ≥√σ Σαφφ√σ τα∩Φ±√Γα■≥±  Γ ±≥≡εΩ≤ str, Ωε≥ε≡α  ε≥εß≡αµασ≥±  φα Ωεφ±εδΦ ΩδΦσφ≥α:

    System.out.println(">> " + str);

    ╧σ≡σΣ ταΓσ≡°σφΦσ∞ ±ΓεσΘ ≡αßε≥√ ΩδΦσφ≥ ταΩ≡√Γασ≥ Γ⌡εΣφεΘ Φ Γ√⌡εΣφεΘ ∩ε≥εΩΦ, α ≥αΩµσ ±εΩσ≥, φα Ωε≥ε≡ε∞ Γ√∩εδφ δα±ⁿ ∩σ≡σΣα≈α Σαφφ√⌡:

    is.close();
    os.close();
    s.close();


Java | ╧≡εΣ≤Ω≥√ Φ ≡σ°σφΦ  | ╥σ⌡φεδεπΦΦ | ╤σ≡ΓΦ± Φ εß≤≈σφΦσ
╬ Ωε∞∩αφΦΦ | ╧α≡≥φσ≡√ | ═εΓε±≥Φ | ╧εΦ±Ω
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content